define(function(require, exports){
	var $ = require('jquery');
	var pubjs = require('pubjs');
	var util = require('util');
	var base = require('modules/client').base;
	var dspUtil = require('dspUtil');

	var os = base.extend({
		init: function(config, parent){
			config = pubjs.conf(0, config, {
				'data': [
					{
						key: 'os',
						text: LANG('操作系统'),
						items: pubjs.config("mobileClient/os")
					},
					{
						key: 'osVersion',
						text: LANG('安卓系统版本'),
						items: pubjs.config("mobileClient/osVersion"),
						config: {
							hide: true,
							tips: LANG('安卓系统版本定向，暂只支持优酷、新浪、新浪视频、TanX移动、万流客、聚效移动、乐视移动、爱奇艺移动、搜狐移动、新浪微博、广告家移动、玉米移动、中天移动、京东mobile、陌陌、新今日头条、聚告移动渠道')
						}
					},
					{
						key: 'deviceIdType',
						text: LANG('设备id类型过滤'),
						items: pubjs.config("mobileClient/deviceIdType")
					},
					{
						key: 'ls',
						text: LANG('系统语言'),
						items: pubjs.config("client/campaignLang"),
						config: {
							tips: LANG('暂只支持谷歌、谷歌移动渠道')
						}
					}
				],
				'all_value': ['ls', 'os', 'osVersion', 'deviceIdType']
			});

			this.Super('init', arguments);
		},
		initList: function(){
			this.Super('initList', arguments);
			// 反选按钮与清空按钮
			this.$el.find('.M-commonSLCZoneHead').hide();
			this.$el.find('M-commonSLCButtons').hide();
			this.$el.find('.M-commonSLCZoneBody').css('margin-left',0);

			this.uiProxy(this.$el, 'input[value="os:10006"]', 'change', 'eventChangeAndroid');
		},
		// Android操作系统切换系统版本显隐
		eventChangeAndroid: function(evt, elm){
			var el = this.$el;
			var checked = el.find('input[value="os:10006"]').prop('checked');
			el.find('.M-commonSLCZone[data-key="osVersion"]').toggle(checked);
		},
		setData: function(){
			this.Super('setData', arguments);
			this.eventChangeAndroid();
		},
		eventToggleItem: function(evt, elm){
			this.Super('eventToggleItem', arguments);
			this.eventChangeAndroid();
		},
		validate: function(data)
		{
			// 移动端操作系统版本,原本准备读配置管理，系统和设备ID过滤的，但是暂时先写死ID匹配吧
			// var osType_config = util.clone(pubjs.config('mobileClient/os'));
			var os_map = {
				'10006': ['imei', 'androidid'],
				'20028': ['idfa']
			}

			var osType = data.OSType || [];
			var deviceIdType = data.DeviceIdType || [];
			// 如果单选安卓系统或者ios系统，同时有过滤设别id类型过滤，则检查设备类型id和系统是否匹配
			if ((osType.length == 1) && deviceIdType.length)
			{
				var os_type_id = osType[0];
				var os_type_include = os_map[os_type_id];
				var os_type_validate = true;

				util.each(deviceIdType, function(deviceId)
				{
					// 該系统类型不支持这种设备id过滤
					if (os_type_include.indexOf(deviceId) == -1)
					{
						os_type_validate = false;
					}
				});

				if (!os_type_validate)
				{
					pubjs.alert(LANG('请选择与操作系统对应的设备ID类型'));
					return false;
				}
			}

			return true;
		}
	});
	exports.base = os;
});
